Generating personalized content

ABSTRACT

Systems and methods are presented for adding system-identified content to a user&#39;s content space based on information identified from the user&#39;s email account. In operation, after obtaining user authorization to access email items of an email account, the email items are iteratively processed. In processing each of the email items, one or more topics of a currently processed email item are identified. Based on the identified topics and user preferences, one or more content items may be identified for addition to the user&#39;s online content space. Additionally, the information identified from processing the one or more email items is used to update the user&#39;s preferences.

CROSS-REFERENCE TO PRIOR APPLICATIONS

This application is a continuation application of and claims benefit toU.S. patent application Ser. No. 15/835,158, filed on Dec. 7, 2017, andentitled “Generating Personalized Content,” which is hereby incorporatedby reference herein in its entirety.

BACKGROUND

There are numerous social networking services, each offering aparticular set of services. Many people are subscribers of multiplesocial networking services chosen according to the particular set ofservices that they wish to access and enjoy, as well as those of friendsand associates.

Social networking services often look to improve their customer/userexperiences through personalization, i.e., customizing the informationpresented to a user according to a set of user preferences of that user.In this regard, user preferences are maintained for multipleusers/subscribers by a social networking service. These user preferencesmay be established according to explicitly provided information from theuser (e.g., the user tells the service what is liked or not), orimplicitly derived information about the user based on user behaviorwith the social networking service (e.g., inferring preferences anddislikes according to the user's behavior).

As mentioned above, each social networking service provides a distinctset of services to the user than those of other social networkingservices. Since each social networking service provides a distinct setof services, it follows that each social networking service develops adistinct set of user preferences or user information, especially inregard to implicitly derived information based on user behaviors. Socialnetworking services, however, typically do not share personalinformation of any given user, especially with other social networkingservices. Of course, one reason for not sharing user preferences may beprivacy concerns. Indeed, what a social networking service may learnabout a subscriber is often considered sensitive information. On theother hand, another reason for not sharing user preferences data iscompetition: each social networking service is in competition with oneanother for a finite amount of a user's attention. The result is thatone social networking service may have a particular set of informationregarding a user's preference that other services may not possess orknow. For example, one social networking service may have substantialuser preference information in regard to a user's preference for travel,while another service may hold information regarding that same user'spreference to hobbies.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing aspects and many of the attendant advantages of thedisclosed subject matter will become more readily appreciated as theyare better understood by reference to the following description whentaken in conjunction with the following drawings, wherein:

FIG. 1 is a block diagram illustrating an exemplary network environmentsuitable for implementing aspects of the disclosed subject matter;

FIG. 2 is a flow diagram illustrating an exemplary routine forgenerating additional content for a user in the user's content spacebased on discovered information from the user's email account, accordingto aspects of the disclosed subject matter;

FIGS. 3A-3C are pictorial diagrams illustrating exemplary content in auser's content space, and updated with additional content based ondiscovered information from the user's email account, according tovarious aspects of the disclosed subject matter;

FIG. 4 is a flow diagram illustrating an exemplary portion of theroutine of FIG. 2 , particularly in regard to identifying an item ofpurchase and presenting the item and related content to the user;

FIG. 5 is a block diagram illustrating an exemplary computer readablemedium encoded with instructions for generating additional content in auser's content space according to aspects of the disclosed subjectmatter; and

FIG. 6 is a block diagram illustrating an exemplary computing devicesuitable for implementing aspects of the disclosed subject matter.

DETAILED DESCRIPTION

According to aspects of the disclosed subject matter, as userpreferences of one social networking service are not available oraccessible to another social networking service, novel methods andsystems are presented herein for obtaining user information (that mayinclude or lead to the inference of user preferences) and utilizing thatnewly-discovered user information to auto-generate content for the user.Indeed, while social networking services would like for all users tospend all of their time engaged solely with their site, the reality isusers do not typically limit themselves in this manner. To reach out totheir users when they are not engaged with their service, socialnetworking services often communicate with users through the user'semail account. For example, when a social networking service detectsaction in an area of interest to one of its users, the service willoften send an email notification to that user telling him/her of theaction and that he/she may be interested. Alternatively, when a personmakes a purchase from an online service, an electronic receipt istypically sent to that person's email account. This purchase, of course,may be the source of deriving an implicit user preference of the user.Indeed, the user's email account typically includes a wealth ofinformation about the user that, if accessed and analyzed, can lead toimproved understanding of the user as well as the generation of contentfor the user.

For purposes of clarity and by way of definition, the term “exemplary,”as used in this document, should be interpreted as serving as anillustration or example of something, and it should not be interpretedas an ideal or leading illustration of that thing. Stylistically, when aword or term is followed by “(s)”, the meaning should be interpreted asindicating the singular or the plural form of the word or term,depending on whether there is one instance of the term/item or whetherthere is one or multiple instances of the term/item. For example, theterm “user(s)” should be interpreted as one or more users. Moreover, theuse of the combination “and/or” with regard to multiple items should beviewed as meaning either or both items.

By way of definition and description, a social networking service (alsoreferred to as a social networking site) is an online platform (i.e.,network accessible platform or service) to build or establish socialnetworks and/or social relations among computer users. These socialnetworks and/or relationships are often, though not exclusively, basedon subscribers/users who share similar interests, activities,backgrounds or real-life connections. A social networking servicetypically creates an online representation for each user/subscriber,allows its users to establish their social links and networks(relationships with others), and also allows its users to post contentto an online content space corresponding to the user or that of otherusers. Typically, though not exclusively, posted content in a user'sonline content space may be viewed by others, including those within theuser's social network, though a posting user is often able to controlwho, if anyone, is able to view the posted content.

Regarding the user's online content space and according to aspects ofthe disclosed subject matter, this online content space is oftenorganized according to one or more collections of related content. Byway of illustration and not limitation, the various embodiments of thiscollection of content may be referred to as boards, pages, threads,collections, and the like. While described in further detail below,reference is made to FIG. 3A, illustrating a user's 101 content space302 that includes content collections 310 and 320 corresponding to fancycars and travel, respectively. Typically, though not exclusively,content collections are presented to a user in such a way as to bedistinct from each other. Often, but not exclusively, contentcollections are related to a topic or set of related topics.

Turning to FIG. 2 and FIGS. 3A-3C, FIG. 2 is a flow diagram illustratingan exemplary routine 200 for generating additional content for a user inthat user's content space based on discovered information from theuser's email account, according to aspects of the disclosed subjectmatter. FIGS. 3A-3C, referenced for illustration and exemplary purposes,are pictorial diagrams illustrating exemplary content in a user'scontent space 302 hosted by a social networking service 112, and updatedwith additional content items according to aspects of the disclosedsubject matter.

For purposes of the example set forth in FIGS. 3A-3C, a socialnetworking service 112 is shown as providing an online content space 302for user/subscriber 101. At the beginning of routine 200 (i.e., beforethe analysis of the user's email account), the user's online contentspace 302 includes two content collections, collections 310 and 320. Inthis example, content collection 310 includes content relating to fancycars and includes two content items 312 and 314 regarding thisparticular collection topic/theme. Content collection 320 includescontent relating to travel locations and includes three content items322, 324 and 326 regarding this collection topic.

In regard to routine 200, beginning at block 202, a typical first stepis to obtain user authorization to access the user's email account. Inone embodiment, this authorization comes in response to a request fromthe social networking service to gain access to the user's emailaccount. The user authorization typically includes at least the emailaddress of the user as well as access information. According to variousembodiments, the access information may include information regarding aservice that is authorized to provide the email items of the user to theservice. A token or passkey indicative of user authorization may beincluded in the access information for validating and/or authorizing theroutine's access of the user's email items to the providing service.Utilizing a third-party service (i.e., third-party to the routineprocessing the email) may result in greater security to the user bysurfacing only those API (application programming interface) calls thatrespond with the requested information (email items), rather than theactual items themselves. By way of illustration, the user may maintain a“gmail” or “outlook” email address such that the social networkingservice would need to reach out to the corresponding email addressprovider, typically via an API, to gain access to the various emailitems.

Regarding the notion of obtaining user authorization, it should beappreciated that this user authorization is obtained through clearnotice and with full consent of the user. According to variousembodiments of the disclosed subject matter, the user is fully informedand provides clear consent for accessing the user's email items.

Of course, in an alternative embodiment, the access information mayinclude the password or other unlocking key for accessing the emailaccount directly. Additional information, such as domain, access port,server, email type (e.g., IMAP, POP3, Exchange), and the like may alsobe obtained from the user. In regard to this additional accessinformation, in addition to information obtained from the user, standardor default information corresponding to the particular email account maybe used, and custom information also may be obtained from the email'sdomain/provider itself.

After obtaining email access information, at block 204, the emailaccount of the user is accessed. More particularly and according toaspects of the disclosed subject matter, email items from the inbox (acollection of email items that have been sent to the user) and outbox (acollection of email items that have been sent from the user) areaccessed. Moreover, any subfolders or other containers (includingsubfolders within the inbox and/or outbox) that contain email items aretypically accessed. Further still, in addition to email items, itemscorresponding to tasks, calendar and scheduling, notes, and the like mayalso be accessed and evaluated. Accordingly, while this documentgenerally refers to email items, it should be understood that thisgeneral reference may include these other forms of content. Moreover, inaddition to content items (both received and sent items) that may beaccessed, SMS/MMS (short message service/multimedia message service)content, chatbot content, and other sources of communications that aresent and/or received by the user may also be accessed.

With the email items of the email account now available, at block 206 aniteration loop is begun. As those skilled in the art will appreciate,this iteration loop iterates through each of the email items of theemail account, processing each one of the email items according to theprocessing steps set forth herein. For purposes of clarity, thecurrently iterated email item (the email item that is currently beingprocessed in the course of iterating through the email items) will bereferred to as the “email item” or as the “currently iterated emailitem.”

At block 208, and in regard to the currently iterated email item, one ormore topics of that email item are identified. By way of definition, a“topic” of an email item typically corresponds to an entity (e.g.,person or organization), a concept, a theme, sentiment or prevailingnotion within the email. In some embodiments, in addition to or as analternative to a topic, a user preference and/or sentiment may beidentified. For example, an analysis of an email item may result in theidentification of a “fancy car” topic, and further indicate that theuser has a negative preference/dislike for 1970's era cars. Having botha topic (which may, of itself, infer a user preference) as well as aclear user preference to the topic will lead to more accuratelypersonalizing the user experience, including adding content to anexisting content collection of the user. Sentiment refers to the user'sfeeling or sense of a particular item. A sentiment may be a positive ornegative sentiment towards a particular topic (leading to a positive ornegative preference.) However, a sentiment may be further nuanced beyondsimply reflecting a positive or negative feeling toward a particularobject. A sentiment may include a sense of aspiration, interest,distaste, and the like. For example, an analysis or review of an emailitem may identify a topic as well as a desire to achieve or purchase anitem of that topic.

As suggested above and according to aspects of the disclosed subjectmatter, there may be one or more topics (or preferences) identifiedwithin each email item, though it may be common to identify only asingle topic for any given email item. Of course, in some instances itmay be that there is no identifiable topic or user preference in whichcase the email item may be ignored and/or not processed.

According to aspects of the disclosed subject matter, the identificationof the one or more topics of the currently iterated email item may bemade according to a lexical analysis of the email item. The applicationof heuristics and algorithms, in the course of the lexical analysis, maybe made to identify document frequency of terms and phrases, inversedocument frequency of terms and phrases, key terms of any subject line,or terms and/or phrases of areas indicating emphasis. The analysis maybe, alternatively or additionally, made according to templateinformation, with templates determined according to an originatingdomain of the email item. In some instances, a template identifies aform or structure of an email, along with context for interpreting thesubject matter within key or important fields/areas of the email.Utilizing domain-specific templates may improve the identification ofkey terms and phrases from other content in an email item. For example,an email item (in an inbox) originating from a known travel service maytrigger the use of a template for efficiently looking into the subjectmatter/content of the email item to identify key terms such as location,dates, etc. The templates, themselves, may be indictors of a topic ortheme of the email item. Lexical analyses and domain-specific templatesmay be used in conjunction with each other to identify topics of anemail item. In yet another alternative or additional processing mode, amachine learning model may be used to evaluate the email item toidentify one or more topics with corresponding likelihoods of accuracy.

Closely related to templates is the utilization of structured data.Structured data includes certain data arrangements (tables, columns,tabbed, etc.), tagged data (e.g., XML and/or HTML tags), quoted content,emphasized content (e.g., bold, underline, strikeout, size,capitalization, etc.), and the like. Often, just as with templates,detecting the source/originator of the structured content can lead tobetter understanding the structured data. For example, knowing that anemail item is a confirmation receipt regarding a purchase from a knownseller, information such as the purchased item, the cost of thepurchased item, color of the purchased item, and the like may beidentified among the structured data. Accordingly, information regardingstructured data and data source may be used in identifying one or moretopics (and/or user preferences) from an email item. Of course, evenunderstanding that some item has been purchased can lead to a userpreference. Indeed and by way of illustrative example, through ananalysis of the user's email items, the social networking service canbegin to understand what items the user has in his/her closet,understand the user's tastes with regard to fashion, and cancorrespondingly make decisions on adding content to an existing contentcollection (or create a new content collection) for the user, as well asupdating preferences regarding the user. Indeed, even existing contentcollections may be rearranged based on learned user preferences from theprocessed email items, and preferences (positive and/or negative) forvarious items, topics, etc.

In addition to identifying one or more topics, through the variousanalyses conducted on the currently iterated email item to identify oneor more topics, a determination of additional factors or criteria mayalso be made. These factors and/or criteria include a strength of agiven topic to the user as well as a sentiment of the user with regardto the topic. In regard to the strength of the topic to the user, thisrefers to how strongly this topic relates to or is applicable to theuser (irrespective of whether it is a positive or negative evocation ofemotion/reaction). With regard to the strength of the topic, an emailitem may strongly indicate a particular topic (e.g., gardening) but theuser may actually dislike gardening. Knowing that a topic does notstrongly relate to a user is important in determining whether toautomatically generate content for the user in regard to topics ofinterest. Determinations as to strength may be derived from how much theuser seems to be involved with a given topic, the predominance of thetopic in the email item, words and phrases that indicate emphasis,emotion, exclamation and the like.

While the content/subject matter of the email item is analyzed toidentify topics, preferences, and/or sentiments, many email itemsinclude references to other content (i.e., hyperlinks, etc.) that mayprovide key information in processing the email to identify any topics.By way of illustration and not limitation, a currently processed emailitem may include a link (e.g., a hyperlink, URI, and/or URL) toadditional content. A review and analysis of the additional content, inconjunction with the currently iterated email item, may provide context,meaning, and/or additional information that may be critical tounderstanding topics and sentiments, as well as the user's own strengthof relationship to that particular topic. Accordingly, in variousembodiments of the disclosed subject matter, references to contentexternal to the email item are explored and analyzed in conjunction withthe currently iterated email item to help identify any topic orpreference, or user sentiment, of the email item.

In a similar manner to external content links, one email item may bepart of a thread or chain of email items, or reference another emailitem of the user that, in conjunction with the currently iterated emailitem, provide context and information regarding one or more topics,preferences, and sentiments, as well as the strength of these topics,preferences, and sentiments to the user. According to aspects of thedisclosed subject matter, simple iteration of email items may be alteredsuch that an email item which belongs to a thread or chain of emailitems may be analyzed in view of the entire thread or chain of emailitems. Moreover, email items that are not part of any given thread orchain, but referenced within a currently iterated email item, may alsobe explored and evaluated in conjunction with the currently iteratedemail item.

In addition to determining a likely relationship strength of an emailtopic, as suggested above a sentiment value may also be determined. Thissentiment value is an estimation of whether the user favors or disfavorsthe particular topic. In conjunction with the strength of the topic,determinations of whether to auto-generate content for the user in theuser's online content space are made. The sentiment value is madeaccording to an analysis of the email item and relevant terms andphrases, the structure of the email item with regard to the relevantterms and phrases (viewed as being positive or negative), the brevity orverbosity of the content, existing user preferences, whether the useroriginated or received the message, and the like.

At block 210, the one or more identified topics, along with any strengthor sentiment criteria with regard to the one or more topics, are used toupdate, or potentially update, the user's preferences as maintained bythe social networking service. As suggested above, it may be that atopic of an email item, in view of the strength and sentiment of thetopic to the user, should be interpreted as a user preference. In oneembodiment, the information regarding the one or more topics is providedto a preference manager (often implemented as an executing machinelearning model) that makes determinations about the subject matter topotentially infer new preferences of the user, update existingpreferences, or simply record the information as user data as the basisof making further enhancements or revisions to the user's preferencesmaintained by the social networking service.

At block 212, a determination is made as to whether to addsystem-identified content to a content collection in the user's onlinecontent space. This determination is made according to an evaluationbased on the identified topic, the strength and sentiment of the user tothe topic (as available), as well as user preferences regarding thetopic. According to one or more embodiments and by way of illustrationand not limitation, scores may be associated with each of the one ormore topics, adjusted according to corresponding other criteria (e.g.,strength and sentiment), such that each topic of the currently iteratedemail item is assigned an aggregate score. If the aggregate score forany given topic meets or exceeds a threshold amount, the determinationis made to add system-identified content, corresponding to that topic,to the user's online content space.

If the determination is made to not add content to the user's onlinecontent space, the routine 200 proceeds to block 226, where the routineeither selects a next email item to process or terminates the iterationloop. Alternatively, if the determination is to add content to theuser's online content space, the routine 200 proceeds to block 214. Atblock 214, an item of content related to at least one of the one or moretopics is identified. At block 216, a determination is made as towhether to add the identified item of content to an existing contentcollection of the user, or whether to add the identified item of contentto a to-be-created content collection. In one embodiment and accordingto aspects of the disclosed subject matter, this determination may bemade according to a topic or theme of existing content collections inview of the topics/themes of the user's content collections such that ifthere is a match or near-match, the item of content is added to anexisting content collection. Additionally, in the event that all or someof the content items of a content collection are visual in nature, e.g.,images and/or video, visual processing may be employed to identifysimilarities and differences between existing content and any newlyidentified content for addition to the user's content collections. Moreparticularly, visual processing can be used to understand the taste orpreference of a particular user. For example and by way of illustrationand not limitation, in the event that a user receives one or more emailitems that include visual images of gray, mid-century modern couches, avisual processing and analysis of such content may lead the system toidentify these attributes of those couches (gray, mid-century, etc.) asbeing of interest to the user, and the basis for identifying othercontent with similar features, as well as preferences, topics,sentiments, and the like. In contrast, if there is no match ornear-match, the identified item of content is added to a new contentcollection.

If the determination is to add the content item to an existing contentcollection, the routine 200 proceeds to block 222 where an existingcontent collection is selected according to the one or more topics, userpreferences, strength of topic to the user, and sentiment of the user.At block 224, the identified item of content is added to the existingcontent collection.

With regard to FIG. 3B, in this example it is assumed that thedetermination was to add the system-identified content 316 (a fancytruck) to the existing content collection 310 (relating to fancy cars).In this example, the effort to match may have been considered a“near-match” and, based on one or more user preference's, thedetermination may have led to an expanded interpretation of the theme ofthe collection, in this case to suggest that a preference for fancy carsincludes fancy pick-up trucks.

Alternatively, if the determination is to add a new content collectionto the user's online content space 302, at block 218 a new content witha theme/topic is added, such as content collection 330 of FIG. 3C. Atblock 220, the identified content item (or content items in the eventthat multiple items have been identified) is added to the newly createdcontent collection for the user. With regard to FIG. 3C, the newlycreated content collection 330 includes newly added content items 332,334 and 336, relating to a topic/theme of airplanes throughout history.After posting the new item (or new items) of content to the newlycreated content collection, the routine 200 proceeds to block 226.

In addition to adding to an existing content collection or creating anew content collection, yet another option may be to rearrange one ormore content collections based on information learned about the user.For example, in processing the user's email items it may be learned thatthe user has a particular affinity and preference to German-madevehicles, including both cars and motorcycles. Thus, at block 216, inaddition to or as an alternative to creating or adding to a contentcollection, elements of existing content collections may be re-arrangedaccording to user preferences, as well as including one or moreadditional items of content for the collection.

At block 226, if there are additional email items to process, theroutine 200 continues the iteration by returning to block 206 where anext email item is selected as the currently iterated email item.Alternatively, if all of the email items of the email account have beenprocessed, the routine 200 terminates.

Regarding the determination to add content items to a content collection(either existing or new content collections), while routine 200illustrates that this determination is made in conjunction withprocessing the email items of the email account, in fact this isillustrative of just one embodiment. In an alternative embodiment, thedetermination to add content items to a content collection of the usermay be made after all email items of the email account have beenprocessed. In this manner, the user's preferences may have been fullyupdated according to the insight and information learned throughprocessing the email items, and the user's preferences may then beleveraged to determine if any items of content should be added to theuser's content space, what items of content should be added (assuming itis determined that content items should be add items), and whether tocreate new content collections or add content to existing contentcollections.

In addition to identifying user preferences from email items,advantageously the system may be further utilized to discoveritems/articles that the user possesses, items/articles that the useraspires to possess, and items/articles that the user does not wish topossess. One example of this is in discovering what is in the user'swardrobe through email item evaluation. For example and by way ofillustration and not limitation, in evaluating an email item it may bedetermined that at least one topic of the email item is in regard to thepurchase of various items, such as blazer, suit, or new pair of shoes.Through analysis of the email item as well as cross-referencing withcontent that may be known about the various items, the system may beable to identify that the user now owns a camel hair blazer, or pair ofhigh-heeled shoes. This knowledge/information about the user, includinginformation that may be contained in the user's wardrobe, may be used inidentifying additional content that may be presented to the user, suchas a pair of slacks that would coordinate well with the purchasedblazer. Indeed, discovering at least some of the items in the user'swardrobe may lead to presenting the user with information that wouldcomplement those items, or in understanding a particular style orpreference of the user. As the system determines whether or not to additems of content to a content collection for the user, consideration maybe given to what is in the user's wardrobe, what would combine well withthose items, and create a content collection that contains both itemsthat the user already possesses as well as items that would coordinatewell with those items. The identification of related items may beachieved through visual processing of representative images of itemsthat are known to be in the user's wardrobe. Additionally oralternatively, manually curated collections of wardrobe items may bereferenced to identify what is viewed as being complementary with agiven item owned/possessed by the user. Vendors may also be consultedfor suggestions regarding complimentary, coordinating items. Furtherstill, curated content collections of a large corpus of users thatinclude one or more wardrobe items owned by the user may be consulted toidentify what is popular and/or stylish with that corpus of user. Visualprocessing and/or recognition may be used to automatically distillinformation from content collections, including a curated contentcollection of one large bodies of users, regarding complimentary and/orcoordinative relationships between items. The result of one or more ofthese, as well as other analyses, may be used to identify additionalcontent for presentation to the user.

While routine 200 may be applied in many circumstances, for illustrationpurposes one particular application of the routine is in regard toassisting a user with regard to identifying items that correspond to theuser's own items, particularly the user's wardrobe. Box 207 of FIG. 4illustrates a particular section of routine 200 that is applied to thisparticular scenario. As discussed above in regard to FIG. 2 , at block208, one or more topics of that email item are identified. As alreadysuggested, at least one of these topics may correspond to an item thatthe user has purchased, particularly a wardrobe item of the user, suchas (for illustration purposes) a pair of slacks. At block 210, theuser's preferences are updated according to the one or more topicsidentified of the currently iterated email item.

While not shown in FIG. 2 , in this further detailed description, atblock 211 a determination is made as to whether an identified topiccorresponds to a purchased item of the user, e.g., the exemplary pair ofslacks mentioned above. At block 212, the determination is made as towhether to add system-identified content to a content collection in theuser's online content space, or to create a new content collection forthe user. After making the determination, at block 214′, an item ofcontent related to at least one of the one or more topics is identified.In this example, the identified item of content is one that coordinateswith and/or is complimentary to the identified item (e.g., the user'spair of slacks).

At block 216 and based on the determination of block 212, a contentcollection is created or identified for additions. In both cases, asshown in blocks 220 and 224′, the identified item of content is added(e.g., an image of the identified item) along with the purchased item ofcontent.

While this particular application of the elements (as illustrated inblock 207) from routine 200 is directed to presenting the user with thepurchased wardrobe item and a complimentary/coordinating item that theuser may wish also to purchase or simply see as a potentialcomplimentary/coordinating item, the exemplary routine 200 may beapplied to other scenarios for providing the user with useful, newinformation. These scenarios include, by way of illustration and notlimitation, presenting the user with items in which he has indicated isa hobby, has a professional interest, or has a social or religiousinterest, and the like.

In regard to routine 200 described above, as well as other routinesand/or processes described or suggested throughout this document, whilethese routines and/or processes are expressed in regard to discretesteps, these steps should be viewed as being logical in nature and mayor may not correspond to any specific, actual and/or discrete executionsteps of a given implementation. Also, as already indicated above, theorder in which these steps are presented in the various routines andprocesses, unless otherwise indicated, should not be construed as theonly order that they can be executed, or even the best order in whichthe steps may be carried out. Moreover, in some instances, some of thesesteps may be combined and/or omitted. Those skilled in the art willrecognize that the logical presentation of steps is sufficientlyinstructive to carry out aspects of the claimed subject matterirrespective of any particular development or coding language in whichthe logical instructions/steps are encoded.

Of course, while the described routines and/or processes include variousnovel features of the disclosed subject matter, other steps orprocessing features may also be included and carried out in theexecution of the subject matter set forth in these routines. Thoseskilled in the art will appreciate that the logical steps of theseroutines may be combined together or be comprised of multiple steps.Steps of the above-described routines may be carried out in parallel orin series. Often, but not exclusively, the functionality of the variousroutines is embodied in software (e.g., applications, system services,libraries, and the like) that is executed on one or more processors ofcomputing devices or computing systems, such as the computing systemdescribed in regard to FIG. 6 below. Additionally, in variousembodiments all or some of the various routines and/or processes mayalso be embodied in executable hardware modules including, but notlimited to, systems on chips (SoC's), codecs, specially designedprocessors and or logic circuits, and the like.

As suggested above, these routines and/or processes are typicallyembodied within executable code blocks and/or modules comprisingroutines, functions, looping structures, selectors and switches, such asif-then and if-then-else statements, assignments, arithmeticcomputations, and the like. In execution, the execution of the variouselements configures a computing device or system to operate inaccordance with the routines/processes disclosed herein. However, theexact implementation in executable statements of each of the routines isbased on various implementation configurations and decisions, includingprogramming languages, compilers, target processors, operatingenvironments, and the linking or binding operation. Those skilled in theart will readily appreciate that the logical steps identified in theseroutines may be implemented in any number of ways and that the logicaldescriptions set forth above are sufficiently enabling to achievesimilar results.

While many novel aspects of the disclosed subject matter are expressedin routines or processes embodied within applications (also referred toas computer programs), apps (small, generally single or narrow purposedapplications), services and/or methods, these aspects may also beembodied as computer executable instructions stored by computer-readablemedia, also referred to as computer-readable storage media, which arearticles of manufacture. As those skilled in the art will recognize,computer-readable media can host, store and/or reproducecomputer-executable instructions and data for later retrieval and/orexecution. When the computer-executable instructions that are hosted orstored on the computer-readable storage devices are executed by aprocessor of a computing device or system, the execution thereof causes,configures and/or adapts the executing computing device to carry outvarious steps, methods and/or functionality, including those steps,methods, and routines described above in regard to the variousillustrated routines and/or processes. Examples of computer-readablemedia include, but are not limited to: optical storage media such asBlu-ray discs, digital video discs (DVDs), compact discs (CDs), opticaldisc cartridges, and the like; magnetic storage media including harddisk drives, floppy disks, magnetic tape, and the like; memory storagedevices such as random-access memory (RAM), read-only memory (ROM),memory cards, thumb drives, and the like; cloud storage (i.e., an onlinestorage service); and the like. While computer-readable media mayreproduce and/or cause to deliver the computer-executable instructionsand data to a computing device or computing system for execution by oneor more processors via various transmission means and mediums, includingcarrier waves and/or propagated signals, for purposes of this disclosurecomputer-readable media expressly excludes carrier waves and/orpropagated signals.

Regarding computer-readable media, FIG. 5 is a block diagramillustrating an exemplary computer-readable medium encoded withinstructions for generating content in a user's online content space, asdescribed in regard to routine 200 of FIG. 2 . More particularly, theimplementation 500 comprises a computer-readable medium 508 (e.g., aCD-R, DVD-R or a platter of a hard disk drive), on which is encodedcomputer-readable data 506. This computer-readable data 506 in turncomprises a set of computer instructions 504 configured to operateaccording to one or more of the principles set forth herein. In one suchembodiment 502, the processor-executable instructions 404 may beconfigured to perform a method, such as at least some of exemplaryroutine 200, for example. In another such embodiment, theprocessor-executable instructions 504 may be configured to implement asystem on a computing device, such as at least some of the exemplary,executable components of computing system 500 of FIG. 5 , as describedbelow. Many such computer-readable media may be devised, by those ofordinary skill in the art, which are configured to operate in accordancewith the techniques presented herein.

Turning to FIG. 6 , FIG. 6 is a block diagram illustrating an exemplarycomputing system 600 suitable for implementing aspects of the disclosedsubject matter, particularly in regard to a social networking service112 auto-generating content in a user's online content space accordingto information from examining the user's email account. The computingsystem 600 typically includes one or more processors (or processingunits), such as processor 602, and further includes at least one memory604. The processor 602 and memory 604, as well as other components ofthe computing system, are interconnected by way of a system bus 610.

As will be appreciated by those skilled in the art, the processor 602executes instructions retrieved from the memory 604, fromcomputer-readable media, such as computer-readable media 500 of FIG. 5 ,and/or other executable components in carrying out the various functionsof a social networking service 112 particularly configured toauto-generate content in a user's online content space. The processor602 may be comprised of any of a number of available processors such assingle-processor, multi-processor, single-core units, and multi-coreunits, which are well known in the art.

As will be further appreciated by those skilled in the art, the memory604 typically (but not always) comprises both volatile memory 606 andnon-volatile memory 608. Volatile memory 606 retains or storesinformation so long as the memory is supplied with power. In contrast,non-volatile memory 508 is capable of storing (or persisting)information even when a power supply is not available. Generallyspeaking, RAM and CPU cache memory are examples of volatile memory 606whereas ROM, solid-state memory devices, memory storage devices, and/ormemory cards are examples of non-volatile memory 608.

Further still, the illustrated computing system 600 typically alsoincludes a network communication interface 612 for interconnecting thiscomputing system with other devices, computers and/or services over acomputer network, such as network 108 of FIG. 1 . The networkcommunication interface 612, sometimes referred to as a networkinterface card or NIC, communicates over a network using one or morecommunication protocols via a physical/tangible (e.g., wired, opticalfiber, etc.) connection, a wireless connection such as WiFi or Bluetoothcommunication protocols, NFC, or a combination thereof. As will bereadily appreciated by those skilled in the art, a network communicationinterface, such as network communication component 612, is typicallycomprised of hardware and/or firmware components (and may also includeor comprise executable software components) that transmit and receivedigital and/or analog signals over a transmission medium (i.e., thenetwork.)

The exemplary computing system 600 includes one or more components that,in execution on the computing system, provide an online socialnetworking service, such as social networking service 112 of FIG. 1 .These one or more components, as outlined by box 518, include but arenot limited to, an email analysis component 620, a preference managercomponent 622, and a content generator 624.

Upon obtaining permission to access an email account of auser/subscriber of the social networking service and accountinformation, and in execution on the computing system 600, the emailanalysis component 620 accesses and processes the email items of theuser's email account. As described above in regard to blocks 206 and 208of FIG. 2 , the email analysis component 620 iterates through the itemsof the email account and, for each of the items, conducts an analysis ofthe email item to identify one or more topics of the email item. Inaddition to identifying the one or more topics, additional email iteminformation may be also determined, including an indication of thestrength of each of the one or more topics to the user, and anindication of sentiment (e.g., a positive sentiment, a negativesentiment, or a neutral sentiment) of the user in regard to theparticular topic.

Based on the information from the email analysis component 620, thesocial networking service 112 updates (or potentially updates) thatuser's preferences by way of a preference manager 622. According toaspects of the disclosed subject matter, the user's preferences may beupdated based on the frequency in which a particular topic is referencedby the user, including the number of email items that touch on thesubject. Additionally, a user's preferences may be updated, modified orexpanded based on previously established user preferences, thepreferences of other users, user behaviors, and the like. According toaspects of the disclosed subject matter, the preference manager 622 mayutilize a machine learning model that, based on the input gained fromthe analysis of the various email items, determines a likelihood of avariety of preference modifications or additions for the user and, forthose likelihoods that meet or exceed a predetermined threshold, updatesor adds to the user's preferences.

A content generator 624, in execution, is used to determine whether toadd content to a content collection in the user's online content spacebased on the information obtained from the email items by the emailanalysis component 620 and preferences maintained (or updated) by thepreference manager 622. As described above in regard to blocks 212-224,the content generator 624 makes a determination as to whether to addcontent to a content collection in the user's content space (asmaintained in a user content store 626), identifies an item content froma content store 626, as well as determines whether to add the item ofcontent to an existing content collection or to create a new contentcollection for the user.

Regarding these various components of the illustrated computing system600, those skilled in the art will appreciate that many of thesecomponents may be implemented as executable software modules stored inthe memory of the computing device, as executable hardware modulesand/or components (including SoCs—systems on a chip), or a combinationthereof. Indeed, components may be implemented according to variousexecutable embodiments including executable software modules that carryout one or more logical elements of the processes described in thisdocument, or as hardware and/or firmware components that includeexecutable logic to carry out the one or more logical elements of theprocesses described in this document. Examples of these executablehardware components include, by way of illustration and not limitation,ROM (read-only memory) devices, programmable logic array (PLA) devices,PROM (programmable read-only memory) devices, EPROM (erasable PROM)devices, and the like, each of which may be encoded with instructionsand/or logic which, in execution, carry out the functions and featuresdescribed herein.

While various novel aspects of the disclosed subject matter have beendescribed, it should be appreciated that these aspects are exemplary andshould not be construed as limiting. Variations and alterations to thevarious aspects may be made without departing from the scope of thedisclosed subject matter.

What is claimed:
 1. A computing system, comprising: one or moreprocessors; and a memory storing program instructions that, whenexecuted by the one or more processors, cause the one or more processorsto at least: obtain user authorization for accessing a plurality ofitems associated with a user of a social networking service; access, viaa plurality of calls to an application programming interface (API), theplurality of items, wherein the API provides information associated withthe plurality of items over a computer network to the social networkingservice in response to the plurality of calls to the API withoutproviding the plurality of items to the social networking service;process the information associated with the plurality of items to:determine a topic of a first item of the plurality of items; determine,using a user preference manager and based at least in part on the topic,a new user preference or a user preference update, wherein the userpreference manager includes a trained machine learning model trained todetermine at least one of user preferences or updates to userpreferences based at least in part on input data that includes userinformation; and determine, based at least in part on the topic and thenew user preference or the user preference update, a content item inconnection with the user.
 2. The computing system of claim 1, whereinthe program instructions, when executed by the one or more processors,further cause the one or more processors to: determine a strength valueassociated with the topic; determine a sentiment value associated withthe topic; determine, based at least in part on the strength value andthe sentiment value, a topic score; determine that the topic scoreexceeds a first threshold value; and determine, in response to thedetermination that the topic score exceeds the first threshold value,that the content item is to be added to a content space associated withthe user.
 3. The computing system of claim 2, wherein the programinstructions, when executed by the one or more processors, further causethe one or more processors to: determine a similarity between thecontent item and a first content collection of the content spaceassociated with the user, wherein the similarity is determined based onat least one of: a first comparison of the topic with a collection topicassociated with the first content collection; or a second comparison ofthe content item with a plurality of content items associated with thefirst content collection; determine that the similarity exceeds a secondthreshold value; and in response to the determination that thesimilarity exceeds the second threshold value, add the content item tothe first content collection of the content space associated with theuser.
 4. The computing system of claim 2, wherein the programinstructions, when executed by the one or more processors, further causethe one or more processors to: determine a similarity between thecontent item and a first content collection of the content spaceassociated with the user, wherein the similarity is determined based onat least one of: a first comparison of the topic with a collection topicassociated with the first content collection; or a second comparison ofthe content item with a plurality of content items associated with thefirst content collection; determine that the similarity does not exceeda second threshold value; and in response to the determination that thesimilarity does not exceed the second threshold value: create a secondcontent collection in the content space associated with the user; andadd the content item to the second content collection of the contentspace associated with the user.
 5. The computing system of claim 1,wherein the plurality of items includes at least one of: an emailmessage; a task item; a calendar item; a note item; a short messengerservice message (SMS) item; or a multimedia message service (MMS)message item.
 6. A computing-implemented method, comprising: obtaininguser authorization for accessing a plurality of messages associated witha user of a social networking service; accessing, via a call to anapplication programming interface (API), a first message of theplurality of messages, wherein the API provides information associatedwith the first message over a computer network to the social networkingservice in response to the call to the API without providing the firstmessage to the social networking service; determining a topic of thefirst message; determining, using a user preference engine and based atleast in part on the topic, a new user preference of the user or a userpreference update of the user; and determining, based at least in parton the topic and the new user preference or the user preference update,a content item in connection with the user.
 7. The computer implementedmethod of claim 6, wherein determining the topic of the first messageincludes at least one of: performing a lexical analysis of the firstmessage to identify key terms of the first message to determine thetopic of the first message; or processing, using a trained machinelearning model trained to identify one or more message topics based atleast in part on input data that includes a message, the first messageto determine the topic of the first message.
 8. The computer-implementedmethod of claim 6, wherein determining the topic of the first messageincludes: determining at least one of a template or a data structureassociated with data included in the first message; and performing ananalysis of the data included in the first message based at least inpart on the template or the data structure to determine the topic of thefirst message.
 9. The computer-implemented method of claim 6, whereindetermining the topic of the first message includes: identifying, in thefirst message, a reference to additional content; processing theadditional content to determine the topic of the first message.
 10. Thecomputer-implemented method of claim 9, wherein the additional contentincludes at least one of: a uniform resource indicator; a uniformresource locator; a message thread associated with the first message; ora second message of the plurality of messages.
 11. Thecomputer-implemented method of claim 6, further comprising: determininga strength value associated with the topic; determining a sentimentvalue associated with the topic; determining, based at least in part onthe strength value and the sentiment value, a topic score; determiningthat the topic score exceeds a first threshold value; and determining,in response to the determination that the topic score exceeds the firstthreshold value, that the content item is to be added to a content spaceassociated with the user.
 12. The computer-implemented method of claim11, further comprising: determining, a similarity between the contentitem and a first content collection of the content space associated withthe user, wherein the similarity is determined based on at least one of:a first comparison of the topic with a collection topic associated withthe first content collection; or a second comparison of the content itemwith a plurality of content items associated with the first contentcollection; determining that the similarity exceeds a second thresholdvalue; and in response to the determination that the similarity exceedsthe second threshold value, adding the content item to the first contentcollection of the content space associated with the user.
 13. Thecomputer-implemented method of claim 11, further comprising:determining, a similarity between the content item and a first contentcollection of the content space associated with the user, wherein thesimilarity is determined based on at least one of: a first comparison ofthe topic with a collection topic associated with the first contentcollection; or a second comparison of the content item with a pluralityof content items associated with the first content collection;determining that the similarity does not exceed a second thresholdvalue; and in response to the determination that the similarity does notexceed the second threshold value: creating a second content collectionto the content space associated with the user; and adding the contentitem to the second content collection of the content space associatedwith the user.
 14. The computer-implemented method of claim 6, wherein:determining the topic of the first message includes identifying an itempurchased by the user; and determining the content item includesdetermining that the content item is complementary to the item purchasedby the user.
 15. The computer-implemented method of claim 14, wherein:determining the topic of the first message includes identifying aplurality of items purchased by the user; determining the content itemincludes determining a plurality of content items that are complementaryto the plurality of items purchased by the user; and the method furthercomprises: creating a new content collection including the plurality ofitems purchased by the user and the plurality of content items.
 16. Acomputing system, comprising: one or more processors; and a memorystoring program instructions that, when executed by the one or moreprocessors, cause the one or more processors to at least: obtain userauthorization for accessing a plurality of messages associated with auser of a social networking service; access, via a plurality of calls toan application programming interface (API), the plurality of messages,wherein the API provides information associated with the plurality ofmessages over a computer network to the social networking service inresponse to the plurality of calls to the API without providing theplurality of messages to the social networking service; process theinformation associated with the plurality of messages to: determine atopic of a first message of the plurality of messages; and determine,using a user preference manager and based at least in part on the topic,a new user preference or a user preference update, wherein the userpreference manager includes a trained machine learning model trained todetermine at least one of user preferences or updates to userpreferences based at least in part on input data that includes userinformation.
 17. The computing system of claim 16, wherein the programinstructions, when executed by the one or more processors, further causethe one or more processors to: determine, based at least in part on atleast one of the topic, the new user preference, or the user preferenceupdate, a content item to be added to a content space associated withthe user.
 18. The computing system of claim 17, wherein the programinstructions, when executed by the one or more processors, further causethe one or more processors to: based at least in part on a comparison ofa plurality of content collections of the content space associated withthe user to at least one of the topic or the content item, at least oneof: add the content item to a first content collection of the pluralityof content collections; or create a new content collection in thecontent space associated with the user and add the content item to a newcontent collection.
 19. The computing system of claim 16, whereindetermination of the topic of the first message includes: determining atleast one of a template or a data structure associated with dataincluded in the first message; and performing an analysis of the dataincluded in the first message based at least in part on the template orthe data structure to determine the topic of the first message.
 20. Thecomputing system of claim 16, wherein determination of the topic of thefirst message includes: determining a strength value associated with thetopic; and determining a sentiment value associated with the topic.